# _*_ coding: UTF-8 _*_
# @Time     : 2020/10/16 上午 11:40
# @Author   : Li Jie
# @Site     : http://www.cdtest.cn/
# @File     : file_test.py
# @Software : PyCharm

# 文件的处理

# 文件的读取
def foo1():
    # 1.开文件
    # open(文件路径, mode=模式)
    # 文件路径可以用绝对、相对路径
    # mode：r-读，w-写入
    # file1 = open('./test1.txt',mode='r')#相对路径
    file1 = open(r'./test1.txt', mode='r', encoding='utf8')  # 打开文件，创建文件对象

    # ASCII、GBK、UTF-8

    # 2.1.读取文件内容
    # read():将整个文件的内容读取为字符串
    str1 = file1.read()
    print(str1)

    # 3.关闭文件
    file1.close()


def foo2():
    # 1.开文件
    # open(文件路径, mode=模式)
    # 文件路径可以用绝对、相对路径
    # mode：r-读，w-写入
    # file1 = open('./test1.txt',mode='r')#相对路径
    file1 = open(r'D:\pyworkspace\test\c10\test1.txt', mode='r', encoding='utf8')  # 打开文件，创建文件对象

    # ASCII、GBK、UTF-8

    # 2.1.读取文件内容
    # read():将整个文件的内容读取为字符串
    str1 = file1.read(5)
    # str1 = file1.read(5)
    print(str1)

    # 3.关闭文件
    file1.close()


def foo3():
    with open(r'D:\pyworkspace\test\c10\test1.txt', mode='r', encoding='utf8') as file1:  #
        # 1. 打开文件，创建文件对象

        # 2.一次读一行，读成字符串
        str1 = file1.readline()
        str2 = file1.readline()
        print(str1)
        print(str2)


def foo4():
    with open(r'D:\pyworkspace\test\c10\test1.txt', mode='r', encoding='utf8') as file1:  #
        # 1.打开文件，创建文件对象

        # 2.将文件中的内容读成字符串的列表(重点掌握)
        list1 = file1.readlines()
        print(list1)


# 文件的写入
def foo5():
    # 1.打开文件
    # w:当文件已存在会覆盖原有内容，如果文件不存在，会新建文件
    # a:追加写入
    file1 = open('test2.txt', mode='w', encoding='utf8')

    # 2.1写入文件
    # 将字符串写入整个文件
    str1 = '犇\n汇智动力\n2021'
    file1.write(str1)

    # 3.关闭文件
    file1.close()


def foo6():
    # 1.打开文件
    # w:当文件已存在会覆盖原有内容，如果文件不存在，会新建文件
    # a:追加写入
    file1 = open('test3.txt', mode='w', encoding='utf8')

    # 2.2写入文件
    # 将字符串的列表写入文件(重点掌握)
    list1 = ['骉\n', '2021\n', '汇智动力\n']
    file1.writelines(list1)

    # 3.关闭文件
    file1.close()


if __name__ == '__main__':
    foo1()
    # foo2()
    # foo3()
    # foo4()
    # foo5()
    # foo6()
